import time

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
import unittest
from selenium.webdriver.support.select import Select


class MyTestCase(unittest.TestCase):
    driver = None

    @classmethod
    def setUpClass(cls) -> None:
        service = Service(executable_path="../driver/geckodriver.exe")
        cls.driver = webdriver.Firefox(service=service)

    def test_alert(self):
        """测试 网页中句柄的问题"""

        self.driver.get("https://www.jd.com")

        # 打开一个网页 之后  我们可以获得 当前网页 打开的 大小（宽高），坐标（x，y）  以及 宽高坐标
        # 获得 网页 的打开的 坐标
        position = self.driver.get_window_position()
        print('网页打开的坐标为：', position)

        # 获得 网页 的打开的 宽高
        size = self.driver.get_window_size()
        print('网页打开的宽高为：', size)

        # 获得 网页 的打开的 宽高 以及坐标
        rect = self.driver.get_window_rect()
        print('网页打开的宽高坐标为：', rect)

        time.sleep(2)

        # 设置 网页的  打开的起始坐标
        self.driver.set_window_position(0, 0)

        # 设置 网页的  打开的起始宽高
        self.driver.set_window_size(500, 500)
        time.sleep(3)

        # 设置 网页的  打开的起始坐标以及宽高
        self.driver.set_window_rect(25, 25, 700, 800)

        # 直接设置 网页的最大化
        self.driver.maximize_window()
        time.sleep(3)  # 固定等待
        # 直接设置 网页铺满整个屏幕
        self.driver.fullscreen_window()
        time.sleep(3)
        # 直接设置 网页最小化
        self.driver.minimize_window()

    @classmethod
    def tearDownClass(cls) -> None:
        cls.driver.close()  # 只会 关闭一个 标签页
        # cls.driver.quit()  # 推出浏览器  全部关闭所有的标签页

        pass


if __name__ == '__main__':
    unittest.main()
